﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CurriculasEntities;
using CurriculasController;
using System.Data;

namespace GestionCurriculosGlobal
{
    public partial class frmItinerario : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Session["opcion"] = 4;
            if (!Page.IsPostBack)
            {

                //CARGAR COMBOS
                ListarPlanes();

                //CARGAR GRILLA
                CargarGrilla();


            }
        }

        private void ListarPlanes()
        {

            //CARGAR PAISES
            List<PlanCurricularBE> _planes = new PlanCurricularBL().ListarTodos().ToList();
            cboPlan.DataSource = _planes;
            cboPlan.DataTextField = "nombreplan";
            cboPlan.DataValueField = "codPlanCurricular";
            cboPlan.DataBind();
            cboPlan.Items.Insert(0, "Seleccionar");

            CargarCiclo(0);
        }

        protected void btnCrear_Click(object sender, EventArgs e)
        {
            Response.Redirect("frmRegItinerario.aspx");
        }

        protected void btnConsultar_Click(object sender, EventArgs e)
        {
            CargarGrilla();
        }

        private void CargarGrilla()
        {
            int codPlanCurricular = 0;

            if (cboPlan.SelectedValue != "Seleccionar")
            {
                codPlanCurricular = int.Parse(cboPlan.SelectedValue);
            }

            List<ListaItinerarioBE> _itinerarios;

            if (codPlanCurricular == 0)
            {
                _itinerarios = new ListaBL().ListarItinerarios().ToList();
            }
            else {
                _itinerarios = new ListaBL().ListarItinerarios().Where(c => c.codPlanCurricular == codPlanCurricular).ToList();
            }

            
            gvItinerarios.DataSource = _itinerarios.OrderByDescending(p=> p.codPlanCurricular);
            gvItinerarios.DataBind();
        }

        protected void btnModificar_Click(object sender, EventArgs e)
        {
            int contador = 0;
            string codPlan = "";

            string strScript = "";
            foreach (GridViewRow row in gvItinerarios.Rows)
            {
                if (row.RowType == DataControlRowType.DataRow)
                {
                    CheckBox chkRow = (row.Cells[0].FindControl("chkItinerario") as CheckBox);
                    if (chkRow.Checked)
                    {
                        codPlan = row.Cells[1].Text;
                        contador += 1;
                        //string country = (row.Cells[2].FindControl("lblCurso") as Label).Text;
                    }
                }
            }

            if (contador == 0)
            {
                strScript = "alert('No se ha seleccionado un itinerario a modificar.')";
            }
            else if (contador == 1)
            {
               
                    Response.Redirect("frmRegItinerario.aspx?idPlan="+ codPlan);

            }
            else if (contador > 1)
            {
                strScript = "alert('Solo se puede modificar un itinerario.')";
            }


            Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", strScript, true);

        }

        protected void btnEliminarTrue_Click(object sender, EventArgs e)
        {

            int codPlan = int.Parse(hidCodPlan.Value);
            int codCurso = int.Parse(hidCodCurso.Value);
            string strScript = "";
            if (codCurso != 0 && codPlan != 0)
            {
                ItinerarioFormativoBL objBL = new ItinerarioFormativoBL();
                ItinerarioFormativoBE objBE = new ItinerarioFormativoBE();

                objBE = objBL.ListarTodos().Where(c=> c.codPlanCurricular==codPlan && c.codCurso==codCurso).First();
                objBE.estado = "2";

                objBE = objBL.Modificar(objBE);
                CargarGrilla();

                strScript = "alert('Se eliminó el itinerario asociado al curso con código: " + codCurso + "');";
            }

            Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction2", strScript, true);
        }

        protected void btnEliminar_Click(object sender, EventArgs e)
        {
            int contador = 0;
            int codPlan = 0;
            int codCurso = 0;
            string strScript = "";
            foreach (GridViewRow row in gvItinerarios.Rows)
            {
                if (row.RowType == DataControlRowType.DataRow)
                {
                    CheckBox chkRow = (row.Cells[0].FindControl("chkItinerario") as CheckBox);
                    if (chkRow.Checked)
                    {
                        codPlan = int.Parse(row.Cells[1].Text);
                        codCurso = int.Parse(row.Cells[4].Text);
                        //string country = (row.Cells[2].FindControl("lblCurso") as Label).Text;
                        contador += 1;
                    }
                }
            }

            if (contador > 1)
            {
                strScript = "alert('Solo se puede eliminar un itinerario.')";

            } if (contador == 1)
            {

               
                        //Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "ConfirmDelete('" + codCurso + "')", true);
                        strScript = "ConfirmDelete('" + codPlan + "','" + codCurso +"')";

            }
            else if (contador == 0)
            {

                strScript = "alert('Seleccionar un itinerario para eliminar.')";
            }




            Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", strScript, true);
        }

        protected void cboPlan_SelectedIndexChanged(object sender, EventArgs e)
        {   int codPlan = 0 ; 
            if (cboPlan.SelectedValue != "Seleccionar")
            {
                codPlan = int.Parse(cboPlan.SelectedValue);
            }
            CargarCiclo(codPlan);
        }

        public void CargarCiclo(int plan) {

            if (plan > 0) {
                List<ItinerarioFormativoBE> _ciclos = new ItinerarioFormativoBL().ListarTodos().Where(c => c.codPlanCurricular == plan).ToList();
                cboCiclo.DataSource = _ciclos;
                cboCiclo.DataTextField = "ciclo";
                cboCiclo.DataValueField = "ciclo";
                cboCiclo.DataBind();
            }
            
            cboCiclo.Items.Insert(0, "Seleccionar");
        }
    }
}